package com.triple.example.consumer;

import com.triple.example.common.model.User;
import com.triple.example.common.service.UserService;
import com.triple.triplerpc.bootstrap.ConsumerBootstrap;
import com.triple.triplerpc.proxy.ServiceProxyFactory;

/**
 * 服务消费者启动类示例
 */
public class ConsumerExample {
    public static void main(String[] args) {
        System.out.println("====== 服务消费者启动 ======");
        // 服务消费者初始化
        ConsumerBootstrap.init();

        // 动态代理
        System.out.println("3. 获取代理对象");
        UserService userService = ServiceProxyFactory.getProxy(UserService.class);
        User user = new User();
        user.setName("张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三张三");
        // 调用
        System.out.println("4. 代理对象调用目标方法");
        for (int i = 0; i < 100; i++) {
            User newUser = userService.getUser(user);
            if (newUser != null) {
                System.out.println(" >>> RPC调用完毕 - 用户名: " + newUser.getName() + ", 第" + i + "次");
            } else {
                System.out.println("找不到用户");
            }
        }
    }
}
